library(lmtest)
library(sandwich)
library(date)




##load latest data generated by data management file
load(file="data/sw_2.Rdata")##weapon stops 2008-2015, "sw"


sw2<-sw
dim(sw2)
##use indicator for suspect being white (relative to any other)


sw2$int<-sw2$white

sw2<-sw2[order(sw2$dayno),]

##TABLE 1
## Estimate discontinuity at moment of intervention using all weapon stops, 2008-2015

se1<-rep(NA, 8)
names.models<-c("diff.means","diff.means+controls","linear","linear+controls","squared","squared+controls","cubic","cubic+controls")
names(se1)<-names.models

##diff in means
m1<-lm(weapon.hit~period+int+period*int, data=sw2)
se1[1]<-summary(m1)$coefficients["periodpost-memo:int","Std. Error"]

m1a<-lm(weapon.hit~period+int+period*int+factor(year)+factor(month)+factor(weekday)+lag.hit, data=sw2)
se1[2]<-summary(m1a)$coefficients["periodpost-memo:int","Std. Error"]

##local linear
m2<-lm(weapon.hit~period+distance+period*distance + int+period*int+distance*int+period*distance*int, data=sw2)
se1[3]<-summary(m2)$coefficients["periodpost-memo:int","Std. Error"]


m2a<-lm(weapon.hit~period+distance+period*distance + int+period*int+distance*int+period*distance*int+factor(year)+factor(month)+factor(weekday)+lag.hit, data=sw2)
se1[4]<-summary(m2a)$coefficients["periodpost-memo:int","Std. Error"]

##second order poly
m3<-lm(weapon.hit~period+distance+period*distance + I(distance^2)+period*I(distance^2)+int+period*int+distance*int+I(distance^2)*int+period*int*distance+period*int*I(distance^2), data=sw2)
se1[5]<-summary(m3)$coefficients["periodpost-memo:int","Std. Error"]

m3a<-lm(weapon.hit~period+distance+period*distance + I(distance^2)+period*I(distance^2)+int+period*int+distance*int+I(distance^2)*int+period*int*distance+period*int*I(distance^2)+factor(year)+factor(month)+factor(weekday)+lag.hit, data=sw2)
se1[6]<-summary(m3a)$coefficients["periodpost-memo:int","Std. Error"]


##cubic
m4<-lm(weapon.hit~period+distance+period*distance + I(distance^2)+period*I(distance^2) +  I(distance^3)+period*I(distance^3)+int+period*int+distance*int+I(distance^2)*int+period*int*distance+period*int*I(distance^2)+int*I(distance^3)+int*period*I(distance^3), data=sw2)
se1[7]<-summary(m4)$coefficients["periodpost-memo:int","Std. Error"]

m4a<-lm(weapon.hit~period+distance+period*distance + I(distance^2)+period*I(distance^2) +  I(distance^3)+period*I(distance^3)+int+period*int+distance*int+I(distance^2)*int+period*int*distance+period*int*I(distance^2)+int*I(distance^3)+int*period*I(distance^3)+factor(year)+factor(month)+factor(weekday)+lag.hit, data=sw2)
se1[8]<-summary(m4a)$coefficients["periodpost-memo:int","Std. Error"]


models2<-list(m1, m1a, m2, m2a, m3, m3a, m4, m4a)

print("models done")

save(se1,file= "output/se1_white_sus.Rdata")##save conventional SEs
save(models2,file= "output/std_models_white_sus.Rdata")##save conventional SEs

vars<-list(NA)
vc<-list(NA)

##estimate HAC SEs

print("computing HAC SEs")

for(i in 1:length(models2)){#reset to 1 if replicating
vci<-vcovHAC(models2[[i]])
vc[[i]]<-vci
save(vc, file="output/white_sus_HAC_vc.Rdata")
print(i)
}
